#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
char* my_strstr(const char* dest, const char* src)
{
	assert(dest && src);
	char* s1 = NULL;
	char* s2 = NULL;
	char* start = (char*)dest;
	while (*start)
	{
		s1 = start;
		s2 = (char*)src;
		while (*s1 == *s2)
		{
			s1++;
			s2++;
		}
		if (*s2 == '\0')
			return start;
		start++;
	}
	return NULL;
}
int main()
{
	char a1[] = "abbbcdef";
	char a2[] = "bbc";
	printf("%s\n", my_strstr(a1, a2));
	return 0;
}
//char* my_strcat(char* dest, const char* src)
//{
//	assert(dest && src);
//	char* ret = (char*)dest;
//	while (*dest != '\0')
//	{
//		dest++;
//	}
//	while (*dest++ = *src++)
//		;
//	return ret;
//}
//int main()
//{
//	char a1[] = "abc";
//	char a2[20] = "xxx \0xxxx";
//	printf("%s\n",my_strcat(a2, a1));
//	return 0;
//}
//int my_strcmp(const char* p1, const char* p2)
//{
//	assert(p1 && p2);
//	while (*p1 == *p2)
//	{
//		if (*p1 == '\0')
//			return 0;
//		p1++;
//		p2++;
//	}
//	return *p1 - *p2;
//}
//int main()
//{
//	char a1[] = "abcdef";
//	char a2[] = "abb";
//	int ret = my_strcmp(a1, a2);
//	printf("%d\n", ret);
//	return 0;
//}
//char* my_strcpy(char* dest, const char* src)
//{
//	assert(dest && src);
//	char* ret = dest;
//	while (*dest++ = *src++)
//	{
//		;
//	}
//	return ret;
//}
//int main()
//{
//	char a1[] = "abcdef";
//	char a2[20] = { 0 };
//	printf("%s\n",my_strcpy(a2, a1));
//	return 0;
//}
//int my_strlen(char* pa)
//{
//	assert(pa);
//	int count = 0;
//	while (*pa != '\0')
//	{
//		count++;
//		pa++;
//	}
//	return count;
//}
//int my_strlen(char* pa)
//{
//	assert(pa);
//	char* ppa = pa;
//	while (*ppa != '\0')
//	{
//		ppa++;
//	}
//	return ppa - pa;
//}
//int my_strlen(char* pa)
//{
//	assert(pa);
//	if (*pa != '\0')
//		return 1 + my_strlen(pa + 1);
//}
//int main()
//{
//	char a[] = "abcde";
//	int ret = my_strlen(a);
//	printf("%d\n",ret);
//	return 0;
//}